Page({

  /**
   * 页面的初始数据
   */
  data: {
    //放数据
    list: [],
    // 列表数据
    homelist: [],
    // 索引
    active: 0,
    // 新增分页相关变量
    page: 1, // 当前页码（默认第一页）
    num: 10, // 每页加载数量（根据接口实际支持调整）
    hasMore: true, // 是否还有更多数据
    isLoading: false // 是否正在加载（防止重复请求）
  },
  // 跳转详情页
  goToDetail(e) {
    const {
      id,
      cid
    } = e.currentTarget.dataset
    // 这里的data就是包含id和cid的对象，直接存储
    const data = {
      id,
      cid
    };
    //  通过id找到对应的数据
    let idlist = this.data.homelist.filter(item => item.id == data.id)
    // 核心修改：读取本地已有历史，避免覆盖，实现多条存储
    let oldHistory = wx.getStorageSync('key') || []; // 1. 读旧记录（无则空数组）
    oldHistory = oldHistory.filter(item => item.id != data.id); // 2. 去重：删除同id旧记录
    oldHistory.unshift(...idlist); // 3. 追加新记录到最前面（最新的在首位）
    if (oldHistory.length > 20) oldHistory.pop(); // 4. 可选：限制最大条数（如20条）
    // 存储到本地
    wx.setStorageSync('key', oldHistory)
    wx.navigateTo({
      url: `/pages/Detail/detail?id=${id}&cid=${cid}`,
    })
  },
  //  onChange切换tab
  // 切换tab时更新active
  onChange(e) {
    // 1. 从事件对象的detail中获取真正的标签索引
    const currentIndex = e.detail.index;
    this.setData({
      active: currentIndex,
      homelist: [], // 清空当前列表
      page: 1, // 重置页码为1
      hasMore: true, // 重置是否有更多数据
      isLoading: false // 重置加载状态
    }, () => {
      // 可选：切换回第0个标签时，若没数据可重新加载
      if (currentIndex === 0 ) {
        this.getList();
      }
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getDate(); // 获取标签数据
    // 加载初始列表（第一页）
    this.getList();
  },

  // 调取接口  自定义函数
  getDate() {
    wx.request({
      url: 'https://tea.qingnian8.com/api/qingnews/category',
      method: 'GET',
      header: {
        'access-key': "409524"
      },
      success: res => {
        // console.log(res.data.data);
        // 渲染数据将数据存入data中  使用箭头函数确保指向当前实例
        this.setData({
          list: res.data.data
        })
      }
    })
  },



// 调取列表数据（修改后）
getList() {
  // 标记正在加载
  this.setData({ isLoading: true });

  wx.request({
    url: 'https://tea.qingnian8.com/api/qingnews/newslist',
    method: 'GET',
    header: {
      'access-key': "328492"
    },
    // 新增分页参数，告诉接口要第几页、每页多少条
    data: {
      page: this.data.page,
      num: this.data.num
    },
    success: res => {
      const newData = res.data.data || []; // 接口返回的新一页数据
      const totalList = this.data.homelist.concat(newData); // 拼接旧数据和新数据

      // 判断是否还有更多：新数据少于每页条数，说明没有下一页了
      const hasMore = newData.length >= this.data.num;
      console.log(res.data.data);
      // 更新页面数据
      this.setData({
        homelist: totalList,
        hasMore: hasMore,
        isLoading: false // 加载完成，重置状态
      });
    },
    fail: () => {
      // 请求失败也要重置加载状态
      this.setData({ isLoading: false });
      wx.showToast({ title: '加载失败', icon: 'none' });
    }
  });
},

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // 阻止重复加载（正在加载中 或 没有更多数据时，不执行）
    if (this.data.isLoading || !this.data.hasMore) return;

    // 页码+1，加载下一页
    this.setData({
      page: this.data.page + 1
    }, () => {
      this.getList(); // 调用列表接口加载下一页
    });
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})